package com.yupi.yuoj.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yupi.yuoj.model.entity.ContestRegistration;
import com.yupi.yuoj.model.vo.ContestRankVO;

import java.util.List;

/**
 * 竞赛注册服务
 */
public interface ContestRegistrationService extends IService<ContestRegistration> {
    
    /**
     * 获取竞赛参与者数量
     *
     * @param contestId
     * @return
     */
    int getRegistrationCount(Long contestId);

    /**
     * 用户是否已注册竞赛
     *
     * @param contestId
     * @param userId
     * @return
     */
    boolean hasUserRegistered(Long contestId, Long userId);

    /**
     * 用户参与竞赛（更新状态为参与中）
     *
     * @param contestId
     * @param userId
     * @return
     */
    ContestRegistration startContest(Long contestId, Long userId);

    /**
     * 用户完成竞赛（更新状态为已完成）
     *
     * @param contestId
     * @param userId
     * @return
     */
    ContestRegistration finishContest(Long contestId, Long userId);

    /**
     * 获取竞赛排名
     *
     * @param contestId
     * @return
     */
    List<ContestRankVO> getContestRanking(Long contestId);

    /**
     * 更新参与者排名
     *
     * @param contestId
     * @return
     */
    boolean updateRankings(Long contestId);
} 